package com.study.design.proxy.reflectproxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class ProxyHandler implements InvocationHandler {
    /**
     * 被代理对象
     */
    private Object proxied = null ;

    public ProxyHandler(Object proxied) {
        this.proxied = proxied;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        // 在转调具体目标对象之前，可以执行一些功能处理
        System.out.println("前置增强处理");
        Object object = method.invoke(proxied, args);
        // 在转调具体目标对象之后，可以执行一些功能处理
        System.out.println("后置增强处理");
        return object;
    }
}
